<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
require_once (realpath(dirname(__FILE__)) . "/../config/Database.class.php");
require_once (realpath(dirname(__FILE__)) . "/../models/Usuario.class.php");

class UsuarioDAO {

    function listAll() {

        $usuarios[] = array();

        $query = "SELECT id,usuario,senha,funcionario_id,nivel FROM usuarios";

        $resultado = mysql_query($query, Database::connect()) or 
                die(mysql_error() . "</br>  ERRO NA QUERY: $query");


        while ($linha = mysql_fetch_array($resultado)) {
            $usuario = new Usuario();

            $usuario->setId($linha['id']);
            $usuario->setUsuario($linha['usuario']);
            $usuario->setSenha($linha['senha']);
            $usuario->setFuncionario_id($linha['funcionario_id']);
            $usuario->setNivel($linha['nivel']);

            $usuarios[] = $usuario;
        }
        return $usuarios;
    }

    function listById($id) {
        $query = "SELECT id, usuario, senha, funcionario_id, nivel FROM usuarios WHERE id =$id";

        $resultado = mysql_query($query, Database::connect()) or 
                die(mysql_error() . "</br>  ERRO NA QUERY: $query");

        while ($linha = mysql_fetch_array($resultado)) {

            $usuario = new Usuario();

            $usuario->setId($linha['id']);
            $usuario->setUsuario($linha['usuario']);
            $usuario->setSenha($linha['senha']);
            $usuario->setFuncionario_id($linha['funcionario_id']);
            $usuario->setNivel($linha['nivel']);
        }
        return $usuario;
    }

    function listByNome($nome) {
        $query = "SELECT id, usuario, senha, funcionario_id, nivel FROM usuarios WHERE usuario = '$nome'";

        $resultado = mysql_query($query, Database::connect()) or 
                die(mysql_error() . "</br>  ERRO NA QUERY: $query");

        if (!(mysql_num_rows($resultado) == 0)) {

            while ($linha = mysql_fetch_array($resultado)) {

                $usuario = new Usuario();

                $usuario->setId($linha['id']);
                $usuario->setUsuario($linha['usuario']);
                $usuario->setSenha($linha['senha']);
                $usuario->setFuncionario_id($linha['funcionario_id']);
                $usuario->setNivel($linha['nivel']);
            }
            return $usuario;
        }
        return NULL;
    }

    function save(Usuario $usuario) {

        $query = "INSERT INTO usuarios(usuario, senha, funcionario_id, nivel) VALUES ('" . $usuario->getUsuario() . "','" . $usuario->getSenha() . "','" . $usuario->getFuncionario_id() . "','" . $usuario->getNivel() . "')";


        if (mysql_query($query, Database::connect())){          
            return true;
        }else{
            echo "Erro - Redirecionado ... </br>  </br> " .mysql_error() . "</br>  ERRO NA QUERY: $query";
            return false;
        }

    }

    function edit(Usuario $usuario) {

        $query = "UPDATE usuarios SET usuario = '" . $usuario->getUsuario() . "', senha ='" . $usuario->getSenha() . "', funcionario_id='". $usuario->getFuncionario_id() . "', nivel='" . $usuario->getNivel() . "' WHERE id =" . $usuario->getId();

        if (mysql_query($query, Database::connect())){          
            return true;
        }else{
            echo "Erro - Redirecionado ... </br>  </br> " .mysql_error() . "</br>  ERRO NA QUERY: $query";
            return false;
        }
    }

    function delete($id) {

        $query = "DELETE FROM usuarios WHERE id = $id";

        if (mysql_query($query, Database::connect())){          
            return true;
        }else{
            echo "Erro - Redirecionado ... </br>  </br> " .mysql_error() . "</br>  ERRO NA QUERY: $query";
            return false;
        }
        
    }

}

?>